﻿using log4net;
using PcaCore.DAL;
using PcaVentas.BOL;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace PcaVentas.DAL
{
    public class dPagoComprobante
    {
        private static ILog log = LogManager.GetLogger(typeof(dPagoComprobante));

        #region Public

        public static oVwPagoComprobante Get(string empresaId,
                                             long pagoId)
        {
            try
            {
                //CREATE OR REPLACE FUNCTION pca_ventas.fn_get_pago_comprobante(varchar,--empresa_id $1
                //                  bigint --pago_id $2
                //                  )RETURNS SETOF pca_ventas.vw_pagos_comprobante
                return Core.GetObjectDb<oVwPagoComprobante>("pca_ventas.fn_get_pago_comprobante",
                                                             new oParametro(NpgsqlTypes.NpgsqlDbType.Varchar, empresaId),
                                                             new oParametro(NpgsqlTypes.NpgsqlDbType.Bigint, pagoId)); 
            }
            catch (Exception ex)
            {
                throw Core.LogException(log, ex, MethodBase.GetCurrentMethod().Name);
            }
        }

        public static List<oVwPagoComprobante> GetList(string empresaId,
                                                       string oficinaId,
                                                       long comprobanteId)
        {
            try
            {
                //CREATE OR REPLACE FUNCTION pca_ventas.fn_get_list_pagos_comprobante(varchar,--empresa_id $1
                //                    varchar,--oficina_id $2
                //                    bigint --comprobante_id $3
                //                    )RETURNS SETOF pca_ventas.vw_pagos_comprobante
                return Core.GetListObjecstDb<oVwPagoComprobante>("pca_ventas.fn_get_list_pagos_comprobante",
                                                                 new oParametro(NpgsqlTypes.NpgsqlDbType.Varchar, empresaId),
                                                                 new oParametro(NpgsqlTypes.NpgsqlDbType.Varchar, oficinaId),
                                                                 new oParametro(NpgsqlTypes.NpgsqlDbType.Bigint, comprobanteId));
            }
            catch (Exception ex)
            {
                throw Core.LogException(log, ex, MethodBase.GetCurrentMethod().Name);
            }
        }


        #endregion
    }
}
